package com.ruoyi.messages.service.impl;

import java.util.List;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.messages.domain.SysPublish;
import com.ruoyi.messages.domain.SysPublishStatusDTO;
import com.ruoyi.system.mapper.SysDeptMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.messages.mapper.SysEventMapper;
import com.ruoyi.messages.domain.SysEvent;
import com.ruoyi.messages.service.ISysEventService;

/**
 * 活动管理Service业务层处理
 *
 * @author ruoyi
 * @date 2024-06-14
 */
@Service
public class SysEventServiceImpl implements ISysEventService
{
    @Autowired
    private SysEventMapper sysEventMapper;

    @Autowired
    private SysDeptMapper deptMapper;

    /**
     * 查询活动管理
     *
     * @param id 活动管理主键
     * @return 活动管理
     */
    @Override
    public SysEvent selectSysEventById(Long id)
    {
        return sysEventMapper.selectSysEventById(id);
    }

    /**
     * 查询活动管理列表
     *
     * @param sysEvent 活动管理
     * @return 活动管理
     */
    @Override
    public List<SysEvent> selectSysEventList(SysEvent sysEvent)
    {
        return sysEventMapper.selectSysEventList(sysEvent);
    }

    /**
     * 新增活动管理
     *
     * @param sysEvent 活动管理
     * @return 结果
     */
    @Override
    public int insertSysEvent(SysEvent sysEvent)
    {
        Long deptId = SecurityUtils.getDeptId();
        sysEvent.setCreateTime(DateUtils.getNowDate());
        sysEvent.setDeptId(deptId);
        sysEvent.setUserId(SecurityUtils.getUserId());

        String type = deptMapper.selectDeptById(deptId).getType();

        if (sysEvent.getType().equals("1")) {
            sysEvent.setContext(null);
            if (!sysEvent.getUrl().equals("") || sysEvent.getUrl()!=null) {
                sysEvent.setContext(sysEvent.getUrl());
            }
        }
        if (type.equals("0")) {
            //管理端,所有人都可见
            sysEvent.setDataType("0");
        }
        else if (type.equals("1")) {
            //自己代理商用户和自己商铺用户可见
            sysEvent.setDataType("3");
        }


        return sysEventMapper.insertSysEvent(sysEvent);
    }

    /**
     * 修改活动管理
     *
     * @param sysEvent 活动管理
     * @return 结果
     */
    @Override
    public int updateSysEvent(SysEvent sysEvent)
    {
        sysEvent.setUpdateTime(DateUtils.getNowDate());
        return sysEventMapper.updateSysEvent(sysEvent);
    }

    /**
     * 批量删除活动管理
     *
     * @param ids 需要删除的活动管理主键
     * @return 结果
     */
    @Override
    public int deleteSysEventByIds(Long[] ids)
    {
        return sysEventMapper.deleteSysEventByIds(ids);
    }

    /**
     * 删除活动管理信息
     *
     * @param id 活动管理主键
     * @return 结果
     */
    @Override
    public int deleteSysEventById(Long id)
    {
        return sysEventMapper.deleteSysEventById(id);
    }

    @Override
    public int updateStatus(SysPublishStatusDTO statusDTO) {

        SysEvent sysEvent = new SysEvent();
        sysEvent.setId(statusDTO.getId());
        sysEvent.setStatus(statusDTO.getStatus());


        return  updateSysEvent(sysEvent);


    }
}
